package com.exercise.DesignPattern.StructuralPatterns.FacadePattern;

/**
 * 外观模式
 *
 * 核心思想：为子系统中的一组接口提供一个一致的界面，使得子系统更容易使用。
 * 实现方式：通过定义一个外观类来封装子系统的复杂性，提供简化的接口。
 * 应用场景：Spring 的 JdbcUtils 封装数据库操作细节。
 *
 * 优点：
 * 简化使用：提供简单的接口来访问复杂的子系统。
 * 解耦：将客户端与子系统解耦。
 */
//外观类
public class Facade {
    private SubsystemA subsystemA;
    private SubsystemB subsystemB;

    public Facade() {
        subsystemA = new SubsystemA();
        subsystemB = new SubsystemB();
    }

    public void operation() {
        subsystemA.operationA();
        subsystemB.operationB();
    }
}
